package com.kuang.springcloud.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean { //springboot注解 相当于spring中applicationContext.xml


    //配置负载均衡实现RestTemplate   Ribbon基于客户端访问 可以理解为开启负载均衡
    //IRule

    //AvailablityFilteringRule：会先过滤掉，跳闸（崩溃），访问故障 的服务~ 对剩下的进行轮训 （相当于优化了轮询）
    //RoundRobinRule 轮询 默认
    //RandomRule 随机
    //WeightedResponseTimeRule 权重
    //RetryRule:会先按照轮询获取服务,如果服务获取失败,则会在指定的时间内重试.

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

    /**
     * 注册随机
     */
/*    @Bean
    public IRule myRule() {
        return new RandomRule();
    }*/
}
